<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <script>
            //then 方法的返回结果
            let p = new Promise((resolve, reject) => {
                resolve('ok');
            });

            //指定回调
            // then 返回的 promise 由谁决定? 状态由 then 所指定的回调函数的执行结果决定!!!
            /**
             * 1. 回调函数返回结果值不是一个 promise 对象, 则返回的 promise 状态为 『成功』
             * 2. 回调函数返回结果值是一个 promise 对象  , 则返回的 promise 状态与结果值由回调函数返回的 promise 决定 
             * 3. 回调函数抛出错误, 则返回的 promise 状态为 『失败』, 且失败的结果值为『抛出的错误』
             */
            let result = p.then(v => {
                //返回非 promise 的数据
                return [1,2,3,4,5];
                //返回 promise 对象
                // return new Promise((resolve, reject) => {
                //     resolve('ok');
                //     // reject('error');
                // })
                //抛出
                // throw '出问题啦~~~';
            });

            console.log(result);

            // function fn(){}
            // console.log(fn()); // undefined
            
            
        </script>
        
    </body>
</html>
